/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Questionário;

/**
 *
 * @author AlisonSM
 */
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.Normalizer;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.text.html.FormView;

public class Questionário {
    private ArrayList<QuestãoObjetiva> lista;
    
    public Questionário (){
        this.lista = new ArrayList<QuestãoObjetiva>();
    }
    
    public void add(QuestãoObjetiva a){
        this.lista.add(a);
    }

   public void salvar (){
               
            //String qantigo = this.Lêarquivo();
            
            FileWriter salvo = null;
            
       try {
           salvo = new FileWriter ("salve.txt");
           
       } catch (IOException ex) {
           Logger.getLogger(Questionário.class.getName()).log(Level.SEVERE, null, ex);
       }
       
       try {
           for (QuestãoObjetiva questao : this.lista){
               salvo.write("/" + questao.getClass().getSimpleName()+ "/" +  questao.getTitulo() + "/" + questao.getResposta());
           }
           
           salvo.close();
           
       } catch (IOException ex) {
           Logger.getLogger(Questionário.class.getName()).log(Level.SEVERE, null, ex);
       }

    }
   
   public String Lêarquivo () {
       String texto = "";
       if (new File("C:/Users/AlisonSM/Documents/NetBeansProjects/Trab. 3 - Parte 2/Salve.txt").canRead()==true){
           
       File file = new File("C:/Users/AlisonSM/Documents/NetBeansProjects/Trab. 3 - Parte 2/Salve.txt");  
       FileReader filereader = null;
      
       try {
           filereader = new FileReader(file);
       
       } catch (FileNotFoundException ex) {
           Logger.getLogger(Questionário.class.getName()).log(Level.SEVERE, null, ex);
       }
       
        BufferedReader reader = new BufferedReader(filereader); 
        String linha; 
       
        try {
            
           while ((linha = reader.readLine()) != null) { 
               texto = texto + linha + "\n";
               }
           reader.close(); 
           
       } catch (IOException ex) {
           Logger.getLogger(Questionário.class.getName()).log(Level.SEVERE, null, ex);
       }
       }
       return texto;
    }
   
   public ArrayList<QuestãoObjetiva> Lêquestionariosalvo (){
       String questoes = "";
       String questionario = this.Lêarquivo();
       
       if("".equals(questionario)){
           questoes = "Não a questionario salvo";
           System.out.println(questoes);
       }
       
       else{
           String[] result = questionario.split("/");
           for (int i = 1; i < result.length-1; i=i+3 ){
               if("QuestãoObjetiva".equals(result[i])){
                   QuestãoObjetiva a = new QuestãoObjetiva();
                       a.setTitulo(result[i+1]);
                       if("Sim".equals(result[i+2])){ 
                          a.SetRespostaSim();
                       } 
                       else {
                           a.SetRespostaNao();
                         }
                       this.lista.add(a);
                   }
                   
               else {
                   QuestãoDiscursiva b = new QuestãoDiscursiva();
                       b.setTitulo(result[i+1]);
                       b.SetResposta(result[i+2]);
                       this.add(b);
               }
           }    
       }
       return this.lista;
   }
   
   public String MostrarQuestionario (){
       String questoes = "";
       String questionario = this.Lêarquivo();
       
       if(questionario == ""){ 
           questoes = "Não a questionario salvo";
       }
       
       else{
           String[] result = questionario.split("/");
           
           for (int i = 1, j = 1; i < result.length-1; i=i+3, j++ ){
               
              if("QuestãoObjetiva".equals(result[i])){
                       questoes = questoes + j + ")" + result[i+1] + "  " + " a)Sim  b)Não" + "\n\n";
                   }
              else{
                       questoes = questoes + j + ")" + result[i+1] + "\n\n"; 
              }
           }  
       }
       return questoes;
   }
   
}
